<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>dom4j - 1.6.1</title>
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../style.css" TITLE="Style">
</head>
<body>
<TABLE cellspacing="0" cellpadding="2"><TBODY>
    <!-- C:\ Projects\ dom4j_1.x_branch\ dom4j\ src\ java\ org\ dom4j\ tree\ ConcurrentReaderHashMap.java -->
  <TR>
    <TD colspan="6" class="reportHeader">
    <TABLE width="100%"><TR>
    <TD valign="top" class="titleText">Clover coverage report -   dom4j - 1.6.1 <DIV class="timestamp"><b>Coverage timestamp:</b>&nbsp;ma mei 16 2005 14:23:01 GMT+01:00</DIV>
            <DIV class="navBar"><a href="../../../pkgs-summary.html"><b>Overview</b></a>&nbsp;&nbsp;&nbsp;<a href="pkg-summary.html"><b>Package</b></a>&nbsp;&nbsp;&nbsp;<font class="navBarCurrent">File</font></DIV>
    
<DIV class="navBarLink">
&nbsp;&nbsp;&nbsp;
    <A HREF="../../../index.html" TARGET="_top">FRAMES</A>&nbsp;&nbsp;
<A HREF="ConcurrentReaderHashMap.html" TARGET="_top">NO FRAMES</A>&nbsp;&nbsp;
    </DIV>

</TD>
         <td class="headerStats" valign="top" width="40%" align="right">
        <table align="right">
         <tr>
           <td nowrap><b>file stats:</b></td>
           <td align="right"><b>LOC:</b></td>
           <td align="right">1.284</td>
           <td width="10%">&nbsp;</td>
           <td align="right"><b>Methods:</b></td>
           <td align="right">63</td>
         </tr>
         <tr>
           <td></td>
           <td align="right"><b>NCLOC:</b></td>
           <td align="right">535</td>
           <td width="10%">&nbsp;</td>
           <td align="right"><b>Classes:</b></td>
           <td align="right">9</td>
         </tr>
      </table>
     </td>
    </TR></TABLE>
   </TD>
  </TR>

<TR><TD class="hbreak" colspan="6">&nbsp;</TD></TR>
  <TR>
    <TD class="graphHeaderLeft"><b>&nbsp;Source file</b></TD>
    <TD class="graphHeader">Conditionals</TD>
    <TD class="graphHeader">Statements</TD>
    <TD class="graphHeader">Methods</TD>
    <TD class="graphHeader" align="left" colspan="2"><B>TOTAL</B></TD>
  </TR>   
  <TR>
    <TD class="graphItem">
        	   ConcurrentReaderHashMap.java
	    </TD>
   
    <TD class="graphPercent" align="center">27,8%</TD>
    <TD class="graphPercent" align="center">29,7%</TD>
    <TD class="graphPercent" align="center">17,5%</TD>
    <TD class="graphBarLeft" align="center"><B>27,6%</B></TD>
    <TD class="graphBar">
            <TABLE class="barGraph" cellspacing="0">
        <TBODY>
          <TR>
	               <TD class="covered"><img alt="coverage" src="../../../img/trans.gif"
                   width="55" height="12"></TD>
            <TD class="uncovered"><img alt="coverage" src="../../../img/trans.gif"
                   width="145" height="12"></TD>
	   	  </TR>
	</TBODY>
      </TABLE>
          </TD>
  </TR> 
</TBODY></TABLE><TABLE cellspacing="0" cellpadding="0" class="srcView"><TBODY>
<TR><TD align="right" class="lineCount">
&nbsp;1</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">/*</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;2</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> File: ConcurrentReaderHashMap</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;3</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"></span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;4</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> Written by Doug Lea. Adapted and released, under explicit</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;5</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> permission, from JDK1.2 HashMap.java and Hashtable.java which</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;6</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> carries the following copyright:</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;7</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"></span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;8</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * Copyright 1997 by Sun Microsystems, Inc.,</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;9</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;10</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * All rights reserved.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;11</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> *</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;12</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * This software is the confidential and proprietary information</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;13</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * of Sun Microsystems, Inc. ("Confidential Information").  You</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;14</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * shall not disclose such Confidential Information and shall use</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;15</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * it only in accordance with the terms of the license agreement</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;16</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * you entered into with Sun.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;17</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"></span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;18</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> History:</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;19</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> Date       Who                What</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;20</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> 28oct1999  dl               Created</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;21</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> 14dec1999  dl               jmm snapshot</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;22</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> 19apr2000  dl               use barrierLock</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;23</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> 12jan2001  dl               public release</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;24</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> 17nov2001  dl               Minor tunings</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;25</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> 20may2002  dl               BarrierLock can now be serialized.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;26</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> 09dec2002  dl               Fix interference checks.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;27</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;28</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;29</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="keyword">package</span> org.dom4j.tree;</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;30</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;31</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="keyword">import</span> java.io.IOException;</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;32</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="keyword">import</span> java.io.Serializable;</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;33</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="keyword">import</span> java.util.AbstractCollection;</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;34</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="keyword">import</span> java.util.AbstractMap;</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;35</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="keyword">import</span> java.util.AbstractSet;</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;36</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="keyword">import</span> java.util.Collection;</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;37</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="keyword">import</span> java.util.Enumeration;</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;38</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="keyword">import</span> java.util.Iterator;</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;39</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="keyword">import</span> java.util.Map;</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;40</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="keyword">import</span> java.util.NoSuchElementException;</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;41</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="keyword">import</span> java.util.Set;</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;42</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;43</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;44</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * A version of Hashtable that supports mostly-concurrent reading, but exclusive</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;45</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * writing. Because reads are not limited to periods without writes, a</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;46</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * concurrent reader policy is weaker than a classic reader/writer policy, but</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;47</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * is generally faster and allows more concurrency. This class is a good choice</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;48</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * especially for tables that are mainly created by one thread during the</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;49</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * start-up phase of a program, and from then on, are mainly read (with perhaps</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;50</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * occasional additions or removals) in many threads. If you also need</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;51</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * concurrency among writes, consider instead using ConcurrentHashMap.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;52</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * &lt;p&gt;</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;53</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;54</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * Successful retrievals using get(key) and containsKey(key) usually run without</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;55</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * locking. Unsuccessful ones (i.e., when the key is not present) do involve</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;56</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * brief synchronization (locking). Also, the size and isEmpty methods are</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;57</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * always synchronized.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;58</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;59</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * &lt;p&gt;</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;60</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * Because retrieval operations can ordinarily overlap with writing operations</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;61</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * (i.e., put, remove, and their derivatives), retrievals can only be guaranteed</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;62</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * to return the results of the most recently &lt;em&gt;completed&lt;/em&gt; operations</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;63</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * holding upon their onset. Retrieval operations may or may not return results</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;64</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * reflecting in-progress writing operations. However, the retrieval operations</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;65</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * do always return consistent results -- either those holding before any single</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;66</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * modification or after it, but never a nonsense result. For aggregate</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;67</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * operations such as putAll and clear, concurrent reads may reflect insertion</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;68</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * or removal of only some entries. In those rare contexts in which you use a</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;69</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * hash table to synchronize operations across threads (for example, to prevent</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;70</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * reads until after clears), you should either encase operations in</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;71</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * synchronized blocks, or instead use java.util.Hashtable.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;72</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;73</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * &lt;p&gt;</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;74</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;75</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * This class also supports optional guaranteed exclusive reads, simply by</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;76</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * surrounding a call within a synchronized block, as in &lt;br&gt;</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;77</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * &lt;code&gt;ConcurrentReaderHashMap t; ... Object v; &lt;br&gt;</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;78</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * synchronized(t) { v = t.get(k); } &lt;/code&gt;&lt;br&gt;</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;79</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;80</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * But this is not usually necessary in practice. For example, it is generally</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;81</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * inefficient to write:</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;82</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;83</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * &lt;pre&gt;</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;84</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;85</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> *  </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;86</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> *     ConcurrentReaderHashMap t; ...            // Inefficient version</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;87</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> *     Object key; ...</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;88</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> *     Object value; ...</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;89</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> *     synchronized(t) { </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;90</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> *       if (!t.containsKey(key))</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;91</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> *         t.put(key, value);</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;92</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> *         // other code if not previously present</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;93</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> *       }</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;94</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> *       else {</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;95</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> *         // other code if it was previously present</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;96</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> *       }</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;97</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> *     }</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;98</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> *  </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;99</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> *  </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;100</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * &lt;/pre&gt;</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;101</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;102</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * Instead, if the values are intended to be the same in each case, just take</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;103</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * advantage of the fact that put returns null if the key was not previously</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;104</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * present:</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;105</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;106</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * &lt;pre&gt;</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;107</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;108</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> *  </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;109</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> *     ConcurrentReaderHashMap t; ...                // Use this instead</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;110</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> *     Object key; ...</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;111</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> *     Object value; ...</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;112</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> *     Object oldValue = t.put(key, value);</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;113</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> *     if (oldValue == null) {</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;114</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> *       // other code if not previously present</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;115</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> *     }</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;116</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> *     else {</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;117</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> *       // other code if it was previously present</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;118</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> *     }</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;119</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> *  </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;120</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> *  </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;121</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * &lt;/pre&gt;</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;122</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;123</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * &lt;p&gt;</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;124</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;125</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * Iterators and Enumerations (i.e., those returned by keySet().iterator(),</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;126</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * entrySet().iterator(), values().iterator(), keys(), and elements()) return</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;127</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * elements reflecting the state of the hash table at some point at or since the</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;128</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * creation of the iterator/enumeration. They will return at most one instance</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;129</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * of each element (via next()/nextElement()), but might or might not reflect</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;130</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * puts and removes that have been processed since they were created. They do</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;131</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * &lt;em&gt;not&lt;/em&gt; throw ConcurrentModificationException. However, these</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;132</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * iterators are designed to be used by only one thread at a time. Sharing an</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;133</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * iterator across multiple threads may lead to unpredictable results if the</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;134</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * table is being concurrently modified. Again, you can ensure interference-free</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;135</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * iteration by enclosing the iteration in a synchronized block.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;136</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * &lt;p&gt;</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;137</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;138</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * This class may be used as a direct replacement for any use of</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;139</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * java.util.Hashtable that does not depend on readers being blocked during</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;140</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * updates. Like Hashtable but unlike java.util.HashMap, this class does NOT</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;141</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * allow &lt;tt&gt;null&lt;/tt&gt; to be used as a key or value. This class is also</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;142</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * typically faster than ConcurrentHashMap when there is usually only one thread</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;143</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * updating the table, but possibly many retrieving values from it.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;144</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * &lt;p&gt;</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;145</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;146</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * Implementation note: A slightly faster implementation of this class will be</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;147</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * possible once planned Java Memory Model revisions are in place.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;148</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;149</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * &lt;p&gt;[ &lt;a</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;150</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * href="http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html"&gt;</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;151</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * Introduction to this package. &lt;/a&gt;]</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;152</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;153</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment"> */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;154</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
<A name="ConcurrentReaderHashMap">&nbsp;155</A></TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="keyword">class</span> ConcurrentReaderHashMap <span class="keyword">extends</span> AbstractMap <span class="keyword">implements</span> Map, Cloneable,</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;156</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        Serializable {</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;157</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;158</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/*</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;159</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * The basic strategy is an optimistic-style scheme based on the guarantee</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;160</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * that the hash table and its lists are always kept in a consistent enough</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;161</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * state to be read without locking:</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;162</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;163</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Read operations first proceed without locking, by traversing the</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;164</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * apparently correct list of the apparently correct bin. If an entry is</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;165</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * found, but not invalidated (value field null), it is returned. If not</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;166</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * found, operations must recheck (after a memory barrier) to make sure they</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;167</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * are using both the right list and the right table (which can change under</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;168</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * resizes). If invalidated, reads must acquire main update lock to wait out</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;169</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * the update, and then re-traverse.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;170</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;171</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * All list additions are at the front of each bin, making it easy to check</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;172</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * changes, and also fast to traverse. Entry next pointers are never</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;173</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * assigned. Remove() builds new nodes when necessary to preserve this.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;174</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;175</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Remove() (also clear()) invalidates removed nodes to alert read</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;176</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * operations that they must wait out the full modifications.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;177</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;178</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;179</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;180</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/** A Serializable class for barrier lock * */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
<A name="BarrierLock">&nbsp;181</A></TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="keyword">protected</span> <span class="keyword">static</span> <span class="keyword">class</span> BarrierLock <span class="keyword">implements</span> java.io.Serializable {</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;182</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;183</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;184</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;185</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Lock used only for its memory effects.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;186</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;187</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="keyword">protected</span> final BarrierLock barrierLock = <span class="keyword">new</span> BarrierLock();</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;188</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;189</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;190</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * field written to only to guarantee lock ordering.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;191</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;192</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;193</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="keyword">protected</span> <span class="keyword">transient</span> Object lastWrite;</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;194</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;195</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;196</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Force a memory synchronization that will cause all readers to see table.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;197</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Call only when already holding main synch lock.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;198</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;199</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 199: method entered 20624 times.">&nbsp;20624</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 199: method entered 20624 times.">    <span class="keyword">protected</span> final <span class="keyword">void</span> recordModification(Object x) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;200</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 200: statement executed 20624 times.">&nbsp;20624</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 200: statement executed 20624 times.">        <span class="keyword">synchronized</span> (barrierLock) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;201</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 201: statement executed 20624 times.">&nbsp;20624</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 201: statement executed 20624 times.">            lastWrite = x;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;202</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;203</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;204</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;205</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;206</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Get ref to table; the reference and the cells it accesses will be at</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;207</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * least as fresh as from last use of barrierLock</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;208</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;209</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 209: method entered 41248 times.">&nbsp;41248</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 209: method entered 41248 times.">    <span class="keyword">protected</span> final Entry[] getTableForReading() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;210</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 210: statement executed 41248 times.">&nbsp;41248</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 210: statement executed 41248 times.">        <span class="keyword">synchronized</span> (barrierLock) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;211</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 211: statement executed 41248 times.">&nbsp;41248</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 211: statement executed 41248 times.">            <span class="keyword">return</span> table;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;212</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;213</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;214</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;215</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;216</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * The default initial number of table slots for this table (32). Used when</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;217</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * not otherwise specified in constructor.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;218</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;219</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">int</span> DEFAULT_INITIAL_CAPACITY = 32;</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;220</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;221</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;222</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * The minimum capacity, used if a lower value is implicitly specified by</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;223</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * either of the constructors with arguments. MUST be a power of two.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;224</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;225</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="keyword">private</span> <span class="keyword">static</span> final <span class="keyword">int</span> MINIMUM_CAPACITY = 4;</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;226</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;227</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;228</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * The maximum capacity, used if a higher value is implicitly specified by</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;229</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * either of the constructors with arguments. MUST be a power of two &lt;= 1 &lt;</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;230</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * &lt;30.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;231</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;232</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="keyword">private</span> <span class="keyword">static</span> final <span class="keyword">int</span> MAXIMUM_CAPACITY = 1 &lt;&lt; 30;</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;233</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;234</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;235</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * The default load factor for this table (1.0). Used when not otherwise</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;236</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * specified in constructor.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;237</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;238</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;239</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="keyword">public</span> <span class="keyword">static</span> final <span class="keyword">float</span> DEFAULT_LOAD_FACTOR = 0.75f;</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;240</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;241</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;242</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * The hash table data.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;243</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;244</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="keyword">protected</span> <span class="keyword">transient</span> Entry[] table;</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;245</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;246</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;247</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * The total number of mappings in the hash table.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;248</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;249</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="keyword">protected</span> <span class="keyword">transient</span> <span class="keyword">int</span> count;</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;250</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;251</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;252</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * The table is rehashed when its size exceeds this threshold. (The value of</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;253</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * this field is always (int)(capacity * loadFactor).)</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;254</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;255</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@serial</span></span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;256</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;257</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="keyword">protected</span> <span class="keyword">int</span> threshold;</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;258</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;259</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;260</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * The load factor for the hash table.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;261</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;262</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@serial</span></span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;263</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;264</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="keyword">protected</span> <span class="keyword">float</span> loadFactor;</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;265</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;266</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;267</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Returns the appropriate capacity (power of two) for the specified initial</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;268</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * capacity argument.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;269</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;270</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 270: method entered 10476 times.">&nbsp;10476</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 270: method entered 10476 times.">    <span class="keyword">private</span> <span class="keyword">int</span> p2capacity(<span class="keyword">int</span> initialCapacity) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;271</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 271: statement executed 10476 times.">&nbsp;10476</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 271: statement executed 10476 times.">        <span class="keyword">int</span> cap = initialCapacity;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;272</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;273</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="comment">// Compute the appropriate capacity</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;274</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 274: statement executed 10476 times.">&nbsp;10476</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 274: statement executed 10476 times.">        <span class="keyword">int</span> result;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;275</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 275: expression evaluated to true 0 times, false 10476 times.">&nbsp;10476</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 275: expression evaluated to true 0 times, false 10476 times.">        <span class="keyword">if</span> (cap &gt; MAXIMUM_CAPACITY || cap &lt; 0) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;276</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 276: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 276: statement not executed.">            result = MAXIMUM_CAPACITY;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;277</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        } <span class="keyword">else</span> {</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;278</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 278: statement executed 10476 times.">&nbsp;10476</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 278: statement executed 10476 times.">            result = MINIMUM_CAPACITY;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;279</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 279: statement executed 10476 times.">&nbsp;10476</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 279: statement executed 10476 times.">            <span class="keyword">while</span> (result &lt; cap)</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;280</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 280: statement executed 31428 times.">&nbsp;31428</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 280: statement executed 31428 times.">                result &lt;&lt;= 1;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;281</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;282</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 282: statement executed 10476 times.">&nbsp;10476</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 282: statement executed 10476 times.">        <span class="keyword">return</span> result;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;283</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;284</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;285</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;286</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Return hash code for Object x. Since we are using power-of-two tables, it</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;287</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * is worth the effort to improve hashcode via the same multiplicative</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;288</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * scheme as used in IdentityHashMap.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;289</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;290</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 290: method entered 2283990 times.">&nbsp;2283990</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 290: method entered 2283990 times.">    <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">int</span> hash(Object x) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;291</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 291: statement executed 2283990 times.">&nbsp;2283990</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 291: statement executed 2283990 times.">        <span class="keyword">int</span> h = x.hashCode();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;292</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="comment">// Multiply by 127 (quickly, via shifts), and mix in some high</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;293</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="comment">// bits to help guard against bunching of codes that are</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;294</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="comment">// consecutive or equally spaced.</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;295</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 295: statement executed 2283990 times.">&nbsp;2283990</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 295: statement executed 2283990 times.">        <span class="keyword">return</span> ((h &lt;&lt; 7) - h + (h &gt;&gt;&gt; 9) + (h &gt;&gt;&gt; 17));</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;296</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;297</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;298</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;299</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Check for equality of non-null references x and y.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;300</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;301</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 301: method entered 2222118 times.">&nbsp;2222118</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 301: method entered 2222118 times.">    <span class="keyword">protected</span> <span class="keyword">boolean</span> eq(Object x, Object y) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;302</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 302: statement executed 2222118 times.">&nbsp;2222118</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 302: statement executed 2222118 times.">        <span class="keyword">return</span> x == y || x.equals(y);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;303</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;304</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;305</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;306</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Constructs a new, empty map with the specified initial capacity and the</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;307</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * specified load factor.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;308</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;309</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@param</span> initialCapacity</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;310</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *            the initial capacity The actual initial capacity is rounded to</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;311</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *            the nearest power of two.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;312</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@param</span> loadFactor</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;313</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *            the load factor of the ConcurrentReaderHashMap</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;314</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@throws</span> IllegalArgumentException</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;315</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *             if the initial maximum number of elements is less than zero,</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;316</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *             or if the load factor is nonpositive.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;317</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;318</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;319</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 319: method entered 10476 times.">&nbsp;10476</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 319: method entered 10476 times.">    <span class="keyword">public</span> ConcurrentReaderHashMap(<span class="keyword">int</span> initialCapacity, <span class="keyword">float</span> loadFactor) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;320</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 320: expression evaluated to true 0 times, false 10476 times.">&nbsp;10476</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 320: expression evaluated to true 0 times, false 10476 times.">        <span class="keyword">if</span> (loadFactor &lt;= 0)</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;321</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 321: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 321: statement not executed.">            <span class="keyword">throw</span> <span class="keyword">new</span> IllegalArgumentException(<span class="string">"Illegal Load factor: "</span></A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;322</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                    + loadFactor);</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;323</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 323: statement executed 10476 times.">&nbsp;10476</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 323: statement executed 10476 times.">        <span class="keyword">this</span>.loadFactor = loadFactor;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;324</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;325</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 325: statement executed 10476 times.">&nbsp;10476</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 325: statement executed 10476 times.">        <span class="keyword">int</span> cap = p2capacity(initialCapacity);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;326</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;327</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 327: statement executed 10476 times.">&nbsp;10476</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 327: statement executed 10476 times.">        table = <span class="keyword">new</span> Entry[cap];</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;328</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 328: statement executed 10476 times.">&nbsp;10476</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 328: statement executed 10476 times.">        threshold = (<span class="keyword">int</span>) (cap * loadFactor);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;329</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;330</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;331</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;332</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Constructs a new, empty map with the specified initial capacity and</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;333</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * default load factor.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;334</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;335</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@param</span> initialCapacity</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;336</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *            the initial capacity of the ConcurrentReaderHashMap.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;337</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@throws</span> IllegalArgumentException</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;338</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *             if the initial maximum number of elements is less than zero.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;339</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;340</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;341</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 341: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 341: method not entered.">    <span class="keyword">public</span> ConcurrentReaderHashMap(<span class="keyword">int</span> initialCapacity) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;342</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 342: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 342: statement not executed.">        <span class="keyword">this</span>(initialCapacity, DEFAULT_LOAD_FACTOR);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;343</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;344</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;345</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;346</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Constructs a new, empty map with a default initial capacity and load</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;347</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * factor.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;348</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;349</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;350</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 350: method entered 10476 times.">&nbsp;10476</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 350: method entered 10476 times.">    <span class="keyword">public</span> ConcurrentReaderHashMap() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;351</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 351: statement executed 10476 times.">&nbsp;10476</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 351: statement executed 10476 times.">        <span class="keyword">this</span>(DEFAULT_INITIAL_CAPACITY, DEFAULT_LOAD_FACTOR);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;352</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;353</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;354</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;355</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Constructs a new map with the same mappings as the given map. The map is</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;356</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * created with a capacity of twice the number of mappings in the given map</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;357</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * or 16 (whichever is greater), and a default load factor.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;358</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;359</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;360</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 360: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 360: method not entered.">    <span class="keyword">public</span> ConcurrentReaderHashMap(Map t) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;361</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 361: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 361: statement not executed.">        <span class="keyword">this</span>(Math.max((<span class="keyword">int</span>) (t.size() / DEFAULT_LOAD_FACTOR) + 1, 16),</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;362</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                DEFAULT_LOAD_FACTOR);</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;363</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 363: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 363: statement not executed.">        putAll(t);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;364</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;365</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;366</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;367</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Returns the number of key-value mappings in this map.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;368</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;369</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@return</span> the number of key-value mappings in this map.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;370</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;371</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;372</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 372: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 372: method not entered.">    <span class="keyword">public</span> <span class="keyword">synchronized</span> <span class="keyword">int</span> size() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;373</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 373: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 373: statement not executed.">        <span class="keyword">return</span> count;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;374</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;375</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;376</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;377</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Returns &lt;tt&gt;true&lt;/tt&gt; if this map contains no key-value mappings.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;378</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;379</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@return</span> &lt;tt&gt;true&lt;/tt&gt; if this map contains no key-value mappings.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;380</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;381</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;382</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 382: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 382: method not entered.">    <span class="keyword">public</span> <span class="keyword">synchronized</span> <span class="keyword">boolean</span> isEmpty() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;383</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 383: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 383: statement not executed.">        <span class="keyword">return</span> count == 0;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;384</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;385</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;386</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;387</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Returns the value to which the specified key is mapped in this table.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;388</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;389</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@param</span> key</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;390</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *            a key in the table.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;391</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@return</span> the value to which the key is mapped in this table;</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;392</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *         &lt;code&gt;null&lt;/code&gt; if the key is not mapped to any value in this</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;393</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *         table.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;394</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@exception</span> NullPointerException</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;395</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *                if the key is &lt;code&gt;null&lt;/code&gt;.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;396</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@see</span> #put(Object, Object)</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;397</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;398</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;399</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 399: method entered 2263360 times.">&nbsp;2263360</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 399: method entered 2263360 times.">    <span class="keyword">public</span> Object get(Object key) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;400</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;401</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="comment">// throw null pointer exception if key null</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;402</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 402: statement executed 2263360 times.">&nbsp;2263360</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 402: statement executed 2263360 times.">        <span class="keyword">int</span> hash = hash(key);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;403</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;404</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="comment">/*</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;405</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * Start off at the apparently correct bin. If entry is found, we need</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;406</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * to check after a barrier anyway. If not found, we need a barrier to</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;407</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * check if we are actually in right bin. So either way, we encounter</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;408</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * only one barrier unless we need to retry. And we only need to fully</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;409</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * synchronize if there have been concurrent modifications.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;410</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;411</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;412</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 412: statement executed 2263360 times.">&nbsp;2263360</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 412: statement executed 2263360 times.">        Entry[] tab = table;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;413</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 413: statement executed 2263360 times.">&nbsp;2263360</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 413: statement executed 2263360 times.">        <span class="keyword">int</span> index = hash &amp; (tab.length - 1);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;414</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 414: statement executed 2263360 times.">&nbsp;2263360</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 414: statement executed 2263360 times.">        Entry first = tab[index];</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;415</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 415: statement executed 2263360 times.">&nbsp;2263360</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 415: statement executed 2263360 times.">        Entry e = first;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;416</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;417</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 417: statement executed 2263360 times.">&nbsp;2263360</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 417: statement executed 2263360 times.">        <span class="keyword">for</span> (;;) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;418</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 418: statement executed 2272846 times.">&nbsp;2272846</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 418: statement executed 2272846 times.">            <span class="keyword">if</span> (e == <span class="keyword">null</span>) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;419</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;420</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                <span class="comment">// If key apparently not there, check to</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;421</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                <span class="comment">// make sure this was a valid read</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;422</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;423</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 423: statement executed 41248 times.">&nbsp;41248</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 423: statement executed 41248 times.">                Entry[] reread = getTableForReading();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;424</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 424: expression evaluated to true 41248 times, false 0 times.">&nbsp;41248</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 424: expression evaluated to true 41248 times, false 0 times.">                <span class="keyword">if</span> (tab == reread &amp;&amp; first == tab[index])</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;425</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 425: statement executed 41248 times.">&nbsp;41248</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 425: statement executed 41248 times.">                    <span class="keyword">return</span> <span class="keyword">null</span>;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;426</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                <span class="keyword">else</span> {</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;427</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                    <span class="comment">// Wrong list -- must restart traversal at new first</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;428</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 428: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 428: statement not executed.">                    tab = reread;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;429</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 429: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 429: statement not executed.">                    e = first = tab[index = hash &amp; (tab.length - 1)];</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;430</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;431</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;432</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">            }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;433</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;434</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 434: statement executed 2231598 times.">&nbsp;2231598</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 434: statement executed 2231598 times.">            <span class="keyword">else</span> <span class="keyword">if</span> (e.hash == hash &amp;&amp; eq(key, e.key)) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;435</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 435: statement executed 2222112 times.">&nbsp;2222112</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 435: statement executed 2222112 times.">                Object value = e.value;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;436</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 436: expression evaluated to true 2222112 times, false 0 times.">&nbsp;2222112</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 436: expression evaluated to true 2222112 times, false 0 times.">                <span class="keyword">if</span> (value != <span class="keyword">null</span>)</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;437</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 437: statement executed 2222112 times.">&nbsp;2222112</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 437: statement executed 2222112 times.">                    <span class="keyword">return</span> value;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;438</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;439</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                <span class="comment">// Entry was invalidated during deletion. But it could</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;440</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                <span class="comment">// have been re-inserted, so we must retraverse.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;441</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                <span class="comment">// To avoid useless contention, get lock to wait out</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;442</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                <span class="comment">// modifications</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;443</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                <span class="comment">// before retraversing.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;444</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;445</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 445: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 445: statement not executed.">                <span class="keyword">synchronized</span> (<span class="keyword">this</span>) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;446</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 446: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 446: statement not executed.">                    tab = table;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;447</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                }</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;448</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 448: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 448: statement not executed.">                e = first = tab[index = hash &amp; (tab.length - 1)];</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;449</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;450</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">            } <span class="keyword">else</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;451</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 451: statement executed 9486 times.">&nbsp;9486</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 451: statement executed 9486 times.">                e = e.next;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;452</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;453</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;454</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;455</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;456</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Tests if the specified object is a key in this table.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;457</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;458</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@param</span> key</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;459</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *            possible key.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;460</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@return</span> &lt;code&gt;true&lt;/code&gt; if and only if the specified object is a key</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;461</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *         in this table, as determined by the &lt;tt&gt;equals&lt;/tt&gt; method;</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;462</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *         &lt;code&gt;false&lt;/code&gt; otherwise.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;463</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@exception</span> NullPointerException</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;464</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *                if the key is &lt;code&gt;null&lt;/code&gt;.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;465</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@see</span> #contains(Object)</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;466</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;467</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;468</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 468: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 468: method not entered.">    <span class="keyword">public</span> <span class="keyword">boolean</span> containsKey(Object key) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;469</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 469: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 469: statement not executed.">        <span class="keyword">return</span> get(key) != <span class="keyword">null</span>;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;470</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;471</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;472</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;473</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Maps the specified &lt;code&gt;key&lt;/code&gt; to the specified &lt;code&gt;value&lt;/code&gt;</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;474</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * in this table. Neither the key nor the value can be &lt;code&gt;null&lt;/code&gt;.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;475</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * &lt;p&gt;</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;476</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;477</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * The value can be retrieved by calling the &lt;code&gt;get&lt;/code&gt; method with</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;478</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * a key that is equal to the original key.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;479</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;480</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@param</span> key</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;481</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *            the table key.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;482</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@param</span> value</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;483</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *            the value.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;484</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@return</span> the previous value of the specified key in this table, or</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;485</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *         &lt;code&gt;null&lt;/code&gt; if it did not have one.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;486</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@exception</span> NullPointerException</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;487</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *                if the key or value is &lt;code&gt;null&lt;/code&gt;.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;488</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@see</span> Object#equals(Object)</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;489</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@see</span> #get(Object)</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;490</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;491</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;492</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 492: method entered 20630 times.">&nbsp;20630</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 492: method entered 20630 times.">    <span class="keyword">public</span> Object put(Object key, Object value) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;493</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 493: expression evaluated to true 0 times, false 20630 times.">&nbsp;20630</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 493: expression evaluated to true 0 times, false 20630 times.">        <span class="keyword">if</span> (value == <span class="keyword">null</span>)</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;494</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 494: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 494: statement not executed.">            <span class="keyword">throw</span> <span class="keyword">new</span> NullPointerException();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;495</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;496</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 496: statement executed 20630 times.">&nbsp;20630</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 496: statement executed 20630 times.">        <span class="keyword">int</span> hash = hash(key);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;497</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 497: statement executed 20630 times.">&nbsp;20630</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 497: statement executed 20630 times.">        Entry[] tab = table;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;498</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 498: statement executed 20630 times.">&nbsp;20630</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 498: statement executed 20630 times.">        <span class="keyword">int</span> index = hash &amp; (tab.length - 1);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;499</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 499: statement executed 20630 times.">&nbsp;20630</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 499: statement executed 20630 times.">        Entry first = tab[index];</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;500</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 500: statement executed 20630 times.">&nbsp;20630</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 500: statement executed 20630 times.">        Entry e;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;501</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;502</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 502: statement executed 20630 times.">&nbsp;20630</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 502: statement executed 20630 times.">        <span class="keyword">for</span> (e = first; e != <span class="keyword">null</span>; e = e.next)</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;503</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 503: statement executed 4289 times.">&nbsp;4289</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 503: statement executed 4289 times.">            <span class="keyword">if</span> (e.hash == hash &amp;&amp; eq(key, e.key))</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;504</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 504: statement executed 6 times.">&nbsp;6</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 504: statement executed 6 times.">                <span class="keyword">break</span>;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;505</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;506</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 506: statement executed 20630 times.">&nbsp;20630</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 506: statement executed 20630 times.">        <span class="keyword">synchronized</span> (<span class="keyword">this</span>) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;507</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 507: expression evaluated to true 20630 times, false 0 times.">&nbsp;20630</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 507: expression evaluated to true 20630 times, false 0 times.">            <span class="keyword">if</span> (tab == table) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;508</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 508: statement executed 20630 times.">&nbsp;20630</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 508: statement executed 20630 times.">                <span class="keyword">if</span> (e == <span class="keyword">null</span>) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;509</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                    <span class="comment">// make sure we are adding to correct list</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;510</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 510: expression evaluated to true 20624 times, false 0 times.">&nbsp;20624</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 510: expression evaluated to true 20624 times, false 0 times.">                    <span class="keyword">if</span> (first == tab[index]) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;511</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                        <span class="comment">// Add to front of list</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;512</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 512: statement executed 20624 times.">&nbsp;20624</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 512: statement executed 20624 times.">                        Entry newEntry = <span class="keyword">new</span> Entry(hash, key, value, first);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;513</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 513: statement executed 20624 times.">&nbsp;20624</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 513: statement executed 20624 times.">                        tab[index] = newEntry;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;514</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 514: statement executed 20624 times.">&nbsp;20624</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 514: statement executed 20624 times.">                        <span class="keyword">if</span> (++count &gt;= threshold)</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;515</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 515: statement executed 9 times.">&nbsp;9</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 515: statement executed 9 times.">                            rehash();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;516</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                        <span class="keyword">else</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;517</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 517: statement executed 20615 times.">&nbsp;20615</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 517: statement executed 20615 times.">                            recordModification(newEntry);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;518</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 518: statement executed 20624 times.">&nbsp;20624</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 518: statement executed 20624 times.">                        <span class="keyword">return</span> <span class="keyword">null</span>;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;519</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;520</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                } <span class="keyword">else</span> {</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;521</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 521: statement executed 6 times.">&nbsp;6</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 521: statement executed 6 times.">                    Object oldValue = e.value;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;522</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 522: expression evaluated to true 6 times, false 0 times.">&nbsp;6</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 522: expression evaluated to true 6 times, false 0 times.">                    <span class="keyword">if</span> (first == tab[index] &amp;&amp; oldValue != <span class="keyword">null</span>) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;523</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 523: statement executed 6 times.">&nbsp;6</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 523: statement executed 6 times.">                        e.value = value;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;524</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 524: statement executed 6 times.">&nbsp;6</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 524: statement executed 6 times.">                        <span class="keyword">return</span> oldValue;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;525</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;526</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;527</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">            }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;528</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;529</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">            <span class="comment">// retry if wrong list or lost race against concurrent remove</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;530</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 530: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 530: statement not executed.">            <span class="keyword">return</span> sput(key, value, hash);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;531</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;532</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;533</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;534</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;535</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Continuation of put(), called only when synch lock is held and</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;536</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * interference has been detected.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;537</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;538</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 538: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 538: method not entered.">    <span class="keyword">protected</span> Object sput(Object key, Object value, <span class="keyword">int</span> hash) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;539</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;540</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 540: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 540: statement not executed.">        Entry[] tab = table;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;541</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 541: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 541: statement not executed.">        <span class="keyword">int</span> index = hash &amp; (tab.length - 1);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;542</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 542: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 542: statement not executed.">        Entry first = tab[index];</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;543</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 543: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 543: statement not executed.">        Entry e = first;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;544</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;545</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 545: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 545: statement not executed.">        <span class="keyword">for</span> (;;) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;546</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 546: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 546: statement not executed.">            <span class="keyword">if</span> (e == <span class="keyword">null</span>) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;547</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 547: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 547: statement not executed.">                Entry newEntry = <span class="keyword">new</span> Entry(hash, key, value, first);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;548</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 548: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 548: statement not executed.">                tab[index] = newEntry;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;549</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 549: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 549: statement not executed.">                <span class="keyword">if</span> (++count &gt;= threshold)</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;550</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 550: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 550: statement not executed.">                    rehash();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;551</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                <span class="keyword">else</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;552</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 552: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 552: statement not executed.">                    recordModification(newEntry);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;553</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 553: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 553: statement not executed.">                <span class="keyword">return</span> <span class="keyword">null</span>;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;554</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 554: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 554: statement not executed.">            } <span class="keyword">else</span> <span class="keyword">if</span> (e.hash == hash &amp;&amp; eq(key, e.key)) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;555</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 555: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 555: statement not executed.">                Object oldValue = e.value;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;556</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 556: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 556: statement not executed.">                e.value = value;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;557</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 557: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 557: statement not executed.">                <span class="keyword">return</span> oldValue;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;558</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">            } <span class="keyword">else</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;559</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 559: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 559: statement not executed.">                e = e.next;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;560</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;561</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;562</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;563</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;564</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Rehashes the contents of this map into a new table with a larger</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;565</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * capacity. This method is called automatically when the number of keys in</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;566</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * this map exceeds its capacity and load factor.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;567</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;568</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 568: method entered 9 times.">&nbsp;9</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 568: method entered 9 times.">    <span class="keyword">protected</span> <span class="keyword">void</span> rehash() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;569</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 569: statement executed 9 times.">&nbsp;9</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 569: statement executed 9 times.">        Entry[] oldTable = table;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;570</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 570: statement executed 9 times.">&nbsp;9</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 570: statement executed 9 times.">        <span class="keyword">int</span> oldCapacity = oldTable.length;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;571</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 571: expression evaluated to true 0 times, false 9 times.">&nbsp;9</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 571: expression evaluated to true 0 times, false 9 times.">        <span class="keyword">if</span> (oldCapacity &gt;= MAXIMUM_CAPACITY) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;572</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 572: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 572: statement not executed.">            threshold = Integer.MAX_VALUE; <span class="comment">// avoid retriggering</span></A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;573</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 573: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 573: statement not executed.">            <span class="keyword">return</span>;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;574</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;575</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;576</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 576: statement executed 9 times.">&nbsp;9</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 576: statement executed 9 times.">        <span class="keyword">int</span> newCapacity = oldCapacity &lt;&lt; 1;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;577</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 577: statement executed 9 times.">&nbsp;9</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 577: statement executed 9 times.">        <span class="keyword">int</span> mask = newCapacity - 1;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;578</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 578: statement executed 9 times.">&nbsp;9</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 578: statement executed 9 times.">        threshold = (<span class="keyword">int</span>) (newCapacity * loadFactor);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;579</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;580</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 580: statement executed 9 times.">&nbsp;9</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 580: statement executed 9 times.">        Entry[] newTable = <span class="keyword">new</span> Entry[newCapacity];</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;581</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="comment">/*</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;582</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * Reclassify nodes in each list to new Map. Because we are using</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;583</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * power-of-two expansion, the elements from each bin must either stay</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;584</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * at same index, or move to oldCapacity+index. We also eliminate</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;585</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * unnecessary node creation by catching cases where old nodes can be</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;586</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * reused because their next fields won't change. Statistically, at the</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;587</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * default threshhold, only about one-sixth of them need cloning. (The</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;588</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * nodes they replace will be garbage collectable as soon as they are no</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;589</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * longer referenced by any reader thread that may be in the midst of</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;590</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * traversing table right now.)</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;591</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;592</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;593</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 593: statement executed 9 times.">&nbsp;9</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 593: statement executed 9 times.">        <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i &lt; oldCapacity; i++) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;594</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">            <span class="comment">// We need to guarantee that any existing reads of old Map can</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;595</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">            <span class="comment">// proceed. So we cannot yet null out each bin.</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;596</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 596: statement executed 16352 times.">&nbsp;16352</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 596: statement executed 16352 times.">            Entry e = oldTable[i];</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;597</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;598</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 598: statement executed 16352 times.">&nbsp;16352</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 598: statement executed 16352 times.">            <span class="keyword">if</span> (e != <span class="keyword">null</span>) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;599</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 599: statement executed 8821 times.">&nbsp;8821</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 599: statement executed 8821 times.">                <span class="keyword">int</span> idx = e.hash &amp; mask;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;600</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 600: statement executed 8821 times.">&nbsp;8821</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 600: statement executed 8821 times.">                Entry next = e.next;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;601</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;602</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                <span class="comment">// Single node on list</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;603</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 603: statement executed 8821 times.">&nbsp;8821</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 603: statement executed 8821 times.">                <span class="keyword">if</span> (next == <span class="keyword">null</span>)</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;604</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 604: statement executed 5980 times.">&nbsp;5980</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 604: statement executed 5980 times.">                    newTable[idx] = e;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;605</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;606</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                <span class="keyword">else</span> {</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;607</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                    <span class="comment">// Reuse trailing consecutive sequence of all same bit</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;608</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 608: statement executed 2841 times.">&nbsp;2841</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 608: statement executed 2841 times.">                    Entry lastRun = e;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;609</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 609: statement executed 2841 times.">&nbsp;2841</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 609: statement executed 2841 times.">                    <span class="keyword">int</span> lastIdx = idx;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;610</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 610: statement executed 2841 times.">&nbsp;2841</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 610: statement executed 2841 times.">                    <span class="keyword">for</span> (Entry last = next; last != <span class="keyword">null</span>; last = last.next) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;611</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 611: statement executed 3443 times.">&nbsp;3443</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 611: statement executed 3443 times.">                        <span class="keyword">int</span> k = last.hash &amp; mask;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;612</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 612: statement executed 3443 times.">&nbsp;3443</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 612: statement executed 3443 times.">                        <span class="keyword">if</span> (k != lastIdx) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;613</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 613: statement executed 1921 times.">&nbsp;1921</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 613: statement executed 1921 times.">                            lastIdx = k;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;614</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 614: statement executed 1921 times.">&nbsp;1921</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 614: statement executed 1921 times.">                            lastRun = last;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;615</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;616</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                    }</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;617</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 617: statement executed 2841 times.">&nbsp;2841</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 617: statement executed 2841 times.">                    newTable[lastIdx] = lastRun;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;618</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;619</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                    <span class="comment">// Clone all remaining nodes</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;620</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 620: statement executed 2841 times.">&nbsp;2841</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 620: statement executed 2841 times.">                    <span class="keyword">for</span> (Entry p = e; p != lastRun; p = p.next) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;621</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 621: statement executed 2116 times.">&nbsp;2116</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 621: statement executed 2116 times.">                        <span class="keyword">int</span> k = p.hash &amp; mask;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;622</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 622: statement executed 2116 times.">&nbsp;2116</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 622: statement executed 2116 times.">                        newTable[k] = <span class="keyword">new</span> Entry(p.hash, p.key, p.value,</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;623</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                                newTable[k]);</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;624</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;625</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;626</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">            }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;627</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;628</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;629</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 629: statement executed 9 times.">&nbsp;9</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 629: statement executed 9 times.">        table = newTable;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;630</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 630: statement executed 9 times.">&nbsp;9</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 630: statement executed 9 times.">        recordModification(newTable);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;631</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;632</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;633</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;634</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Removes the key (and its corresponding value) from this table. This</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;635</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * method does nothing if the key is not in the table.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;636</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;637</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@param</span> key</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;638</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *            the key that needs to be removed.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;639</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@return</span> the value to which the key had been mapped in this table, or</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;640</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *         &lt;code&gt;null&lt;/code&gt; if the key did not have a mapping.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;641</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@exception</span> NullPointerException</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;642</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *                if the key is &lt;code&gt;null&lt;/code&gt;.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;643</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;644</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;645</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 645: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 645: method not entered.">    <span class="keyword">public</span> Object remove(Object key) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;646</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="comment">/*</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;647</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * Find the entry, then 1. Set value field to null, to force get() to</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;648</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * retry 2. Rebuild the list without this entry. All entries following</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;649</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * removed node can stay in list, but all preceeding ones need to be</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;650</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * cloned. Traversals rely on this strategy to ensure that elements will</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;651</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * not be repeated during iteration.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;652</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;653</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;654</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 654: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 654: statement not executed.">        <span class="keyword">int</span> hash = hash(key);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;655</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 655: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 655: statement not executed.">        Entry[] tab = table;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;656</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 656: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 656: statement not executed.">        <span class="keyword">int</span> index = hash &amp; (tab.length - 1);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;657</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 657: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 657: statement not executed.">        Entry first = tab[index];</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;658</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 658: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 658: statement not executed.">        Entry e = first;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;659</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;660</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 660: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 660: statement not executed.">        <span class="keyword">for</span> (e = first; e != <span class="keyword">null</span>; e = e.next)</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;661</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 661: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 661: statement not executed.">            <span class="keyword">if</span> (e.hash == hash &amp;&amp; eq(key, e.key))</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;662</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 662: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 662: statement not executed.">                <span class="keyword">break</span>;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;663</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;664</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 664: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 664: statement not executed.">        <span class="keyword">synchronized</span> (<span class="keyword">this</span>) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;665</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 665: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 665: statement not executed.">            <span class="keyword">if</span> (tab == table) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;666</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 666: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 666: statement not executed.">                <span class="keyword">if</span> (e == <span class="keyword">null</span>) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;667</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 667: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 667: statement not executed.">                    <span class="keyword">if</span> (first == tab[index])</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;668</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 668: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 668: statement not executed.">                        <span class="keyword">return</span> <span class="keyword">null</span>;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;669</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                } <span class="keyword">else</span> {</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;670</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 670: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 670: statement not executed.">                    Object oldValue = e.value;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;671</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 671: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 671: statement not executed.">                    <span class="keyword">if</span> (first == tab[index] &amp;&amp; oldValue != <span class="keyword">null</span>) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;672</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 672: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 672: statement not executed.">                        e.value = <span class="keyword">null</span>;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;673</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 673: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 673: statement not executed.">                        count--;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;674</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;675</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 675: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 675: statement not executed.">                        Entry head = e.next;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;676</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 676: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 676: statement not executed.">                        <span class="keyword">for</span> (Entry p = first; p != e; p = p.next)</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;677</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 677: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 677: statement not executed.">                            head = <span class="keyword">new</span> Entry(p.hash, p.key, p.value, head);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;678</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;679</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 679: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 679: statement not executed.">                        tab[index] = head;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;680</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 680: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 680: statement not executed.">                        recordModification(head);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;681</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 681: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 681: statement not executed.">                        <span class="keyword">return</span> oldValue;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;682</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;683</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;684</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">            }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;685</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;686</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">            <span class="comment">// Wrong list or interference</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;687</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 687: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 687: statement not executed.">            <span class="keyword">return</span> sremove(key, hash);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;688</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;689</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;690</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;691</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;692</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Continuation of remove(), called only when synch lock is held and</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;693</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * interference has been detected.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;694</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;695</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;696</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 696: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 696: method not entered.">    <span class="keyword">protected</span> Object sremove(Object key, <span class="keyword">int</span> hash) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;697</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 697: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 697: statement not executed.">        Entry[] tab = table;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;698</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 698: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 698: statement not executed.">        <span class="keyword">int</span> index = hash &amp; (tab.length - 1);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;699</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 699: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 699: statement not executed.">        Entry first = tab[index];</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;700</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;701</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 701: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 701: statement not executed.">        <span class="keyword">for</span> (Entry e = first; e != <span class="keyword">null</span>; e = e.next) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;702</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 702: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 702: statement not executed.">            <span class="keyword">if</span> (e.hash == hash &amp;&amp; eq(key, e.key)) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;703</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 703: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 703: statement not executed.">                Object oldValue = e.value;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;704</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 704: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 704: statement not executed.">                e.value = <span class="keyword">null</span>;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;705</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 705: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 705: statement not executed.">                count--;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;706</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 706: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 706: statement not executed.">                Entry head = e.next;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;707</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 707: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 707: statement not executed.">                <span class="keyword">for</span> (Entry p = first; p != e; p = p.next)</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;708</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 708: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 708: statement not executed.">                    head = <span class="keyword">new</span> Entry(p.hash, p.key, p.value, head);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;709</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;710</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 710: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 710: statement not executed.">                tab[index] = head;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;711</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 711: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 711: statement not executed.">                recordModification(head);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;712</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 712: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 712: statement not executed.">                <span class="keyword">return</span> oldValue;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;713</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">            }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;714</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;715</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 715: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 715: statement not executed.">        <span class="keyword">return</span> <span class="keyword">null</span>;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;716</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;717</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;718</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;719</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Returns &lt;tt&gt;true&lt;/tt&gt; if this map maps one or more keys to the</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;720</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * specified value. Note: This method requires a full internal traversal of</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;721</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * the hash table, and so is much slower than method &lt;tt&gt;containsKey&lt;/tt&gt;.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;722</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;723</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@param</span> value</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;724</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *            value whose presence in this map is to be tested.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;725</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@return</span> &lt;tt&gt;true&lt;/tt&gt; if this map maps one or more keys to the</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;726</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *         specified value.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;727</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@exception</span> NullPointerException</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;728</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *                if the value is &lt;code&gt;null&lt;/code&gt;.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;729</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;730</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;731</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 731: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 731: method not entered.">    <span class="keyword">public</span> <span class="keyword">boolean</span> containsValue(Object value) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;732</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 732: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 732: statement not executed.">        <span class="keyword">if</span> (value == <span class="keyword">null</span>)</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;733</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 733: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 733: statement not executed.">            <span class="keyword">throw</span> <span class="keyword">new</span> NullPointerException();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;734</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;735</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 735: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 735: statement not executed.">        Entry tab[] = getTableForReading();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;736</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;737</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 737: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 737: statement not executed.">        <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i &lt; tab.length; ++i) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;738</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 738: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 738: statement not executed.">            <span class="keyword">for</span> (Entry e = tab[i]; e != <span class="keyword">null</span>; e = e.next)</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;739</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 739: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 739: statement not executed.">                <span class="keyword">if</span> (value.equals(e.value))</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;740</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 740: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 740: statement not executed.">                    <span class="keyword">return</span> <span class="keyword">true</span>;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;741</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;742</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;743</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 743: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 743: statement not executed.">        <span class="keyword">return</span> <span class="keyword">false</span>;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;744</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;745</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;746</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;747</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Tests if some key maps into the specified value in this table. This</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;748</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * operation is more expensive than the &lt;code&gt;containsKey&lt;/code&gt; method.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;749</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * &lt;p&gt;</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;750</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;751</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Note that this method is identical in functionality to containsValue,</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;752</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * (which is part of the Map interface in the collections framework).</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;753</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;754</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@param</span> value</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;755</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *            a value to search for.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;756</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@return</span> &lt;code&gt;true&lt;/code&gt; if and only if some key maps to the</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;757</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *         &lt;code&gt;value&lt;/code&gt; argument in this table as determined by the</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;758</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *         &lt;tt&gt;equals&lt;/tt&gt; method; &lt;code&gt;false&lt;/code&gt; otherwise.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;759</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@exception</span> NullPointerException</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;760</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *                if the value is &lt;code&gt;null&lt;/code&gt;.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;761</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@see</span> #containsKey(Object)</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;762</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@see</span> #containsValue(Object)</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;763</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@see</span> Map</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;764</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;765</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;766</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 766: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 766: method not entered.">    <span class="keyword">public</span> <span class="keyword">boolean</span> contains(Object value) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;767</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 767: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 767: statement not executed.">        <span class="keyword">return</span> containsValue(value);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;768</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;769</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;770</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;771</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Copies all of the mappings from the specified map to this one.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;772</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;773</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * These mappings replace any mappings that this map had for any of the keys</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;774</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * currently in the specified Map.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;775</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;776</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@param</span> t</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;777</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *            Mappings to be stored in this map.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;778</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;779</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;780</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 780: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 780: method not entered.">    <span class="keyword">public</span> <span class="keyword">synchronized</span> <span class="keyword">void</span> putAll(Map t) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;781</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 781: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 781: statement not executed.">        <span class="keyword">int</span> n = t.size();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;782</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 782: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 782: statement not executed.">        <span class="keyword">if</span> (n == 0)</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;783</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 783: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 783: statement not executed.">            <span class="keyword">return</span>;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;784</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;785</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="comment">// Expand enough to hold at least n elements without resizing.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;786</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="comment">// We can only resize table by factor of two at a time.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;787</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="comment">// It is faster to rehash with fewer elements, so do it now.</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;788</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 788: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 788: statement not executed.">        <span class="keyword">while</span> (n &gt;= threshold)</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;789</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 789: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 789: statement not executed.">            rehash();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;790</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;791</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 791: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 791: statement not executed.">        <span class="keyword">for</span> (Iterator it = t.entrySet().iterator(); it.hasNext();) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;792</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 792: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 792: statement not executed.">            Map.Entry entry = (Map.Entry) it.next();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;793</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 793: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 793: statement not executed.">            Object key = entry.getKey();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;794</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 794: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 794: statement not executed.">            Object value = entry.getValue();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;795</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 795: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 795: statement not executed.">            put(key, value);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;796</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;797</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;798</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;799</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;800</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Removes all mappings from this map.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;801</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;802</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 802: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 802: method not entered.">    <span class="keyword">public</span> <span class="keyword">synchronized</span> <span class="keyword">void</span> clear() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;803</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 803: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 803: statement not executed.">        Entry tab[] = table;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;804</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 804: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 804: statement not executed.">        <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i &lt; tab.length; ++i) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;805</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;806</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">            <span class="comment">// must invalidate all to force concurrent get's to wait and then</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;807</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">            <span class="comment">// retry</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;808</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 808: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 808: statement not executed.">            <span class="keyword">for</span> (Entry e = tab[i]; e != <span class="keyword">null</span>; e = e.next)</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;809</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 809: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 809: statement not executed.">                e.value = <span class="keyword">null</span>;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;810</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;811</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 811: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 811: statement not executed.">            tab[i] = <span class="keyword">null</span>;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;812</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;813</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 813: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 813: statement not executed.">        count = 0;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;814</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 814: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 814: statement not executed.">        recordModification(tab);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;815</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;816</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;817</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;818</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Returns a shallow copy of this &lt;tt&gt;ConcurrentReaderHashMap&lt;/tt&gt;</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;819</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * instance: the keys and values themselves are not cloned.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;820</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;821</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@return</span> a shallow copy of this map.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;822</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;823</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;824</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 824: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 824: method not entered.">    <span class="keyword">public</span> <span class="keyword">synchronized</span> Object clone() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;825</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 825: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 825: statement not executed.">        <span class="keyword">try</span> {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;826</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 826: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 826: statement not executed.">            ConcurrentReaderHashMap t = (ConcurrentReaderHashMap) <span class="keyword">super</span>.clone();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;827</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;828</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 828: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 828: statement not executed.">            t.keySet = <span class="keyword">null</span>;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;829</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 829: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 829: statement not executed.">            t.entrySet = <span class="keyword">null</span>;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;830</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 830: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 830: statement not executed.">            t.values = <span class="keyword">null</span>;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;831</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;832</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 832: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 832: statement not executed.">            Entry[] tab = table;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;833</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 833: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 833: statement not executed.">            t.table = <span class="keyword">new</span> Entry[tab.length];</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;834</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 834: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 834: statement not executed.">            Entry[] ttab = t.table;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;835</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;836</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 836: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 836: statement not executed.">            <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i &lt; tab.length; ++i) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;837</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 837: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 837: statement not executed.">                Entry first = <span class="keyword">null</span>;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;838</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 838: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 838: statement not executed.">                <span class="keyword">for</span> (Entry e = tab[i]; e != <span class="keyword">null</span>; e = e.next)</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;839</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 839: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 839: statement not executed.">                    first = <span class="keyword">new</span> Entry(e.hash, e.key, e.value, first);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;840</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 840: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 840: statement not executed.">                ttab[i] = first;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;841</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">            }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;842</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;843</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 843: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 843: statement not executed.">            <span class="keyword">return</span> t;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;844</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        } <span class="keyword">catch</span> (CloneNotSupportedException e) {</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;845</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">            <span class="comment">// this shouldn't happen, since we are Cloneable</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;846</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 846: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 846: statement not executed.">            <span class="keyword">throw</span> <span class="keyword">new</span> InternalError();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;847</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;848</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;849</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;850</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">// Views</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;851</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;852</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="keyword">protected</span> <span class="keyword">transient</span> Set keySet = <span class="keyword">null</span>;</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;853</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;854</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="keyword">protected</span> <span class="keyword">transient</span> Set entrySet = <span class="keyword">null</span>;</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;855</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;856</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="keyword">protected</span> <span class="keyword">transient</span> Collection values = <span class="keyword">null</span>;</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;857</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;858</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;859</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Returns a set view of the keys contained in this map. The set is backed</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;860</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * by the map, so changes to the map are reflected in the set, and</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;861</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * vice-versa. The set supports element removal, which removes the</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;862</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * corresponding mapping from this map, via the &lt;tt&gt;Iterator.remove&lt;/tt&gt;,</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;863</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * &lt;tt&gt;Set.remove&lt;/tt&gt;,&lt;tt&gt;removeAll&lt;/tt&gt;,&lt;tt&gt;retainAll&lt;/tt&gt;, and</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;864</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * &lt;tt&gt;clear&lt;/tt&gt; operations. It does not support the &lt;tt&gt;add&lt;/tt&gt; or</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;865</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * &lt;tt&gt;addAll&lt;/tt&gt; operations.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;866</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;867</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@return</span> a set view of the keys contained in this map.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;868</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;869</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;870</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 870: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 870: method not entered.">    <span class="keyword">public</span> Set keySet() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;871</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 871: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 871: statement not executed.">        Set ks = keySet;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;872</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 872: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 872: statement not executed.">        <span class="keyword">return</span> (ks != <span class="keyword">null</span>) ? ks : (keySet = <span class="keyword">new</span> KeySet());</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;873</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;874</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
<A name="KeySet">&nbsp;875</A></TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="keyword">private</span> <span class="keyword">class</span> KeySet <span class="keyword">extends</span> AbstractSet {</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;876</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 876: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 876: method not entered.">        <span class="keyword">public</span> Iterator iterator() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;877</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 877: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 877: statement not executed.">            <span class="keyword">return</span> <span class="keyword">new</span> KeyIterator();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;878</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;879</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;880</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 880: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 880: method not entered.">        <span class="keyword">public</span> <span class="keyword">int</span> size() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;881</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 881: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 881: statement not executed.">            <span class="keyword">return</span> ConcurrentReaderHashMap.<span class="keyword">this</span>.size();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;882</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;883</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;884</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 884: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 884: method not entered.">        <span class="keyword">public</span> <span class="keyword">boolean</span> contains(Object o) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;885</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 885: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 885: statement not executed.">            <span class="keyword">return</span> ConcurrentReaderHashMap.<span class="keyword">this</span>.containsKey(o);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;886</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;887</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;888</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 888: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 888: method not entered.">        <span class="keyword">public</span> <span class="keyword">boolean</span> remove(Object o) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;889</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 889: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 889: statement not executed.">            <span class="keyword">return</span> ConcurrentReaderHashMap.<span class="keyword">this</span>.remove(o) != <span class="keyword">null</span>;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;890</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;891</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;892</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 892: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 892: method not entered.">        <span class="keyword">public</span> <span class="keyword">void</span> clear() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;893</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 893: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 893: statement not executed.">            ConcurrentReaderHashMap.<span class="keyword">this</span>.clear();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;894</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;895</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;896</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;897</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;898</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Returns a collection view of the values contained in this map. The</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;899</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * collection is backed by the map, so changes to the map are reflected in</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;900</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * the collection, and vice-versa. The collection supports element removal,</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;901</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * which removes the corresponding mapping from this map, via the</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;902</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * &lt;tt&gt;Iterator.remove&lt;/tt&gt;,&lt;tt&gt;Collection.remove&lt;/tt&gt;,</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;903</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * &lt;tt&gt;removeAll&lt;/tt&gt;,&lt;tt&gt;retainAll&lt;/tt&gt;, and &lt;tt&gt;clear&lt;/tt&gt;</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;904</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * operations. It does not support the &lt;tt&gt;add&lt;/tt&gt; or &lt;tt&gt;addAll&lt;/tt&gt;</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;905</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * operations.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;906</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;907</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@return</span> a collection view of the values contained in this map.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;908</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;909</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;910</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 910: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 910: method not entered.">    <span class="keyword">public</span> Collection values() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;911</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 911: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 911: statement not executed.">        Collection vs = values;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;912</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 912: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 912: statement not executed.">        <span class="keyword">return</span> (vs != <span class="keyword">null</span>) ? vs : (values = <span class="keyword">new</span> Values());</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;913</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;914</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
<A name="Values">&nbsp;915</A></TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="keyword">private</span> <span class="keyword">class</span> Values <span class="keyword">extends</span> AbstractCollection {</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;916</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 916: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 916: method not entered.">        <span class="keyword">public</span> Iterator iterator() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;917</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 917: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 917: statement not executed.">            <span class="keyword">return</span> <span class="keyword">new</span> ValueIterator();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;918</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;919</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;920</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 920: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 920: method not entered.">        <span class="keyword">public</span> <span class="keyword">int</span> size() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;921</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 921: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 921: statement not executed.">            <span class="keyword">return</span> ConcurrentReaderHashMap.<span class="keyword">this</span>.size();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;922</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;923</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;924</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 924: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 924: method not entered.">        <span class="keyword">public</span> <span class="keyword">boolean</span> contains(Object o) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;925</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 925: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 925: statement not executed.">            <span class="keyword">return</span> ConcurrentReaderHashMap.<span class="keyword">this</span>.containsValue(o);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;926</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;927</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;928</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 928: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 928: method not entered.">        <span class="keyword">public</span> <span class="keyword">void</span> clear() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;929</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 929: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 929: statement not executed.">            ConcurrentReaderHashMap.<span class="keyword">this</span>.clear();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;930</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;931</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;932</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;933</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;934</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Returns a collection view of the mappings contained in this map. Each</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;935</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * element in the returned collection is a &lt;tt&gt;Map.Entry&lt;/tt&gt;. The</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;936</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * collection is backed by the map, so changes to the map are reflected in</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;937</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * the collection, and vice-versa. The collection supports element removal,</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;938</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * which removes the corresponding mapping from the map, via the</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;939</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * &lt;tt&gt;Iterator.remove&lt;/tt&gt;,&lt;tt&gt;Collection.remove&lt;/tt&gt;,</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;940</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * &lt;tt&gt;removeAll&lt;/tt&gt;,&lt;tt&gt;retainAll&lt;/tt&gt;, and &lt;tt&gt;clear&lt;/tt&gt;</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;941</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * operations. It does not support the &lt;tt&gt;add&lt;/tt&gt; or &lt;tt&gt;addAll&lt;/tt&gt;</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;942</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * operations.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;943</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;944</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@return</span> a collection view of the mappings contained in this map.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;945</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;946</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;947</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 947: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 947: method not entered.">    <span class="keyword">public</span> Set entrySet() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;948</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 948: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 948: statement not executed.">        Set es = entrySet;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;949</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 949: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 949: statement not executed.">        <span class="keyword">return</span> (es != <span class="keyword">null</span>) ? es : (entrySet = <span class="keyword">new</span> EntrySet());</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;950</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;951</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
<A name="EntrySet">&nbsp;952</A></TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="keyword">private</span> <span class="keyword">class</span> EntrySet <span class="keyword">extends</span> AbstractSet {</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;953</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 953: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 953: method not entered.">        <span class="keyword">public</span> Iterator iterator() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;954</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 954: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 954: statement not executed.">            <span class="keyword">return</span> <span class="keyword">new</span> HashIterator();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;955</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;956</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;957</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 957: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 957: method not entered.">        <span class="keyword">public</span> <span class="keyword">boolean</span> contains(Object o) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;958</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 958: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 958: statement not executed.">            <span class="keyword">if</span> (!(o <span class="keyword">instanceof</span> Map.Entry))</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;959</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 959: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 959: statement not executed.">                <span class="keyword">return</span> <span class="keyword">false</span>;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;960</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 960: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 960: statement not executed.">            Map.Entry entry = (Map.Entry) o;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;961</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 961: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 961: statement not executed.">            Object v = ConcurrentReaderHashMap.<span class="keyword">this</span>.get(entry.getKey());</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;962</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 962: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 962: statement not executed.">            <span class="keyword">return</span> v != <span class="keyword">null</span> &amp;&amp; v.equals(entry.getValue());</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;963</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;964</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;965</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 965: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 965: method not entered.">        <span class="keyword">public</span> <span class="keyword">boolean</span> remove(Object o) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;966</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 966: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 966: statement not executed.">            <span class="keyword">if</span> (!(o <span class="keyword">instanceof</span> Map.Entry))</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;967</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 967: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 967: statement not executed.">                <span class="keyword">return</span> <span class="keyword">false</span>;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;968</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 968: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 968: statement not executed.">            <span class="keyword">return</span> ConcurrentReaderHashMap.<span class="keyword">this</span></A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;969</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                    .findAndRemoveEntry((Map.Entry) o);</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;970</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;971</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;972</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 972: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 972: method not entered.">        <span class="keyword">public</span> <span class="keyword">int</span> size() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;973</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 973: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 973: statement not executed.">            <span class="keyword">return</span> ConcurrentReaderHashMap.<span class="keyword">this</span>.size();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;974</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;975</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;976</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 976: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 976: method not entered.">        <span class="keyword">public</span> <span class="keyword">void</span> clear() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;977</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 977: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 977: statement not executed.">            ConcurrentReaderHashMap.<span class="keyword">this</span>.clear();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;978</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;979</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;980</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;981</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;982</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Helper method for entrySet.remove</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;983</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;984</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 984: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 984: method not entered.">    <span class="keyword">protected</span> <span class="keyword">synchronized</span> <span class="keyword">boolean</span> findAndRemoveEntry(Map.Entry entry) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;985</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 985: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 985: statement not executed.">        Object key = entry.getKey();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;986</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 986: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 986: statement not executed.">        Object v = get(key);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;987</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 987: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 987: statement not executed.">        <span class="keyword">if</span> (v != <span class="keyword">null</span> &amp;&amp; v.equals(entry.getValue())) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;988</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 988: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 988: statement not executed.">            remove(key);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;989</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 989: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 989: statement not executed.">            <span class="keyword">return</span> <span class="keyword">true</span>;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;990</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        } <span class="keyword">else</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;991</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 991: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 991: statement not executed.">            <span class="keyword">return</span> <span class="keyword">false</span>;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;992</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;993</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;994</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;995</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Returns an enumeration of the keys in this table.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;996</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;997</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@return</span> an enumeration of the keys in this table.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;998</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@see</span> Enumeration</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;999</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@see</span> #elements()</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1000</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@see</span> #keySet()</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1001</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@see</span> Map</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1002</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1003</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1003: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1003: method not entered.">    <span class="keyword">public</span> Enumeration keys() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1004</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1004: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1004: statement not executed.">        <span class="keyword">return</span> <span class="keyword">new</span> KeyIterator();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1005</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1006</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1007</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1008</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Returns an enumeration of the values in this table. Use the Enumeration</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1009</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * methods on the returned object to fetch the elements sequentially.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1010</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1011</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@return</span> an enumeration of the values in this table.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1012</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@see</span> java.util.Enumeration</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1013</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@see</span> #keys()</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1014</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@see</span> #values()</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1015</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * <span class="javadoc">@see</span> Map</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1016</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1017</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1018</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1018: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1018: method not entered.">    <span class="keyword">public</span> Enumeration elements() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1019</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1019: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1019: statement not executed.">        <span class="keyword">return</span> <span class="keyword">new</span> ValueIterator();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1020</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1021</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1022</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1023</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * ConcurrentReaderHashMap collision list entry.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1024</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1025</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
<A name="Entry">&nbsp;1026</A></TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="keyword">protected</span> <span class="keyword">static</span> <span class="keyword">class</span> Entry <span class="keyword">implements</span> Map.Entry {</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1027</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1028</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="comment">/*</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1029</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * The use of volatile for value field ensures that we can detect status</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1030</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * changes without synchronization. The other fields are never changed,</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1031</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * and are marked as final.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1032</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1033</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1034</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="keyword">protected</span> final <span class="keyword">int</span> hash;</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1035</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1036</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="keyword">protected</span> final Object key;</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1037</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1038</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="keyword">protected</span> final Entry next;</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1039</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1040</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="keyword">protected</span> <span class="keyword">volatile</span> Object value;</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1041</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1042</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 1042: method entered 22740 times.">&nbsp;22740</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 1042: method entered 22740 times.">        Entry(<span class="keyword">int</span> hash, Object key, Object value, Entry next) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1043</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 1043: statement executed 22740 times.">&nbsp;22740</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 1043: statement executed 22740 times.">            <span class="keyword">this</span>.hash = hash;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1044</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 1044: statement executed 22740 times.">&nbsp;22740</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 1044: statement executed 22740 times.">            <span class="keyword">this</span>.key = key;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1045</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 1045: statement executed 22740 times.">&nbsp;22740</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 1045: statement executed 22740 times.">            <span class="keyword">this</span>.next = next;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1046</TD>
<TD align="right" class="lineCountHilight">
<A title="Line 1046: statement executed 22740 times.">&nbsp;22740</A>
</TD><TD class="srcCell"><SPAN class="srcLine"><A title="Line 1046: statement executed 22740 times.">            <span class="keyword">this</span>.value = value;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1047</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1048</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1049</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="comment">// Map.Entry Ops</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1050</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1051</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1051: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1051: method not entered.">        <span class="keyword">public</span> Object getKey() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1052</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1052: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1052: statement not executed.">            <span class="keyword">return</span> key;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1053</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1054</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1055</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1056</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * Get the value. Note: In an entrySet or entrySet.iterator, unless the</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1057</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * set or iterator is used under synchronization of the table as a whole</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1058</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * (or you can otherwise guarantee lack of concurrent modification),</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1059</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * &lt;tt&gt;getValue&lt;/tt&gt; &lt;em&gt;might&lt;/em&gt; return null, reflecting the fact</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1060</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * that the entry has been concurrently removed. However, there are no</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1061</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * assurances that concurrent removals will be reflected using this</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1062</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * method.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1063</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1064</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * <span class="javadoc">@return</span> the current value, or null if the entry has been detectably</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1065</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         *         removed.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1066</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         */</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1067</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1067: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1067: method not entered.">        <span class="keyword">public</span> Object getValue() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1068</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1068: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1068: statement not executed.">            <span class="keyword">return</span> value;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1069</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1070</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1071</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1072</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * Set the value of this entry. Note: In an entrySet or</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1073</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * entrySet.iterator), unless the set or iterator is used under</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1074</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * synchronization of the table as a whole (or you can otherwise</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1075</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * guarantee lack of concurrent modification), &lt;tt&gt;setValue&lt;/tt&gt; is</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1076</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * not strictly guaranteed to actually replace the value field obtained</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1077</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * via the &lt;tt&gt;get&lt;/tt&gt; operation of the underlying hash table in</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1078</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * multithreaded applications. If iterator-wide synchronization is not</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1079</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * used, and any other concurrent &lt;tt&gt;put&lt;/tt&gt; or &lt;tt&gt;remove&lt;/tt&gt;</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1080</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * operations occur, sometimes even to &lt;em&gt;other&lt;/em&gt; entries, then</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1081</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * this change is not guaranteed to be reflected in the hash table. (It</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1082</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * might, or it might not. There are no assurances either way.)</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1083</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1084</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * <span class="javadoc">@param</span> value</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1085</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         *            the new value.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1086</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * <span class="javadoc">@return</span> the previous value, or null if entry has been detectably</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1087</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         *         removed.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1088</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * <span class="javadoc">@exception</span> NullPointerException</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1089</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         *                if the value is &lt;code&gt;null&lt;/code&gt;.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1090</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1091</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">         */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1092</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1093</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1093: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1093: method not entered.">        <span class="keyword">public</span> Object setValue(Object value) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1094</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1094: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1094: statement not executed.">            <span class="keyword">if</span> (value == <span class="keyword">null</span>)</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1095</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1095: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1095: statement not executed.">                <span class="keyword">throw</span> <span class="keyword">new</span> NullPointerException();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1096</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1096: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1096: statement not executed.">            Object oldValue = <span class="keyword">this</span>.value;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1097</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1097: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1097: statement not executed.">            <span class="keyword">this</span>.value = value;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1098</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1098: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1098: statement not executed.">            <span class="keyword">return</span> oldValue;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1099</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1100</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1101</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1101: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1101: method not entered.">        <span class="keyword">public</span> <span class="keyword">boolean</span> equals(Object o) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1102</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1102: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1102: statement not executed.">            <span class="keyword">if</span> (!(o <span class="keyword">instanceof</span> Map.Entry))</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1103</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1103: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1103: statement not executed.">                <span class="keyword">return</span> <span class="keyword">false</span>;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1104</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1104: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1104: statement not executed.">            Map.Entry e = (Map.Entry) o;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1105</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1105: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1105: statement not executed.">            <span class="keyword">return</span> (key.equals(e.getKey()) &amp;&amp; value.equals(e.getValue()));</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1106</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1107</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1108</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1108: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1108: method not entered.">        <span class="keyword">public</span> <span class="keyword">int</span> hashCode() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1109</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1109: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1109: statement not executed.">            <span class="keyword">return</span> key.hashCode() ^ value.hashCode();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1110</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1111</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1112</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1112: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1112: method not entered.">        <span class="keyword">public</span> String toString() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1113</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1113: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1113: statement not executed.">            <span class="keyword">return</span> key + <span class="string">"="</span> + value;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1114</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1115</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1116</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1117</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
<A name="HashIterator">&nbsp;1118</A></TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="keyword">protected</span> <span class="keyword">class</span> HashIterator <span class="keyword">implements</span> Iterator, Enumeration {</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1119</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="keyword">protected</span> final Entry[] tab; <span class="comment">// snapshot of table</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1120</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1121</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="keyword">protected</span> <span class="keyword">int</span> index; <span class="comment">// current slot</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1122</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1123</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="keyword">protected</span> Entry entry = <span class="keyword">null</span>; <span class="comment">// current node of slot</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1124</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1125</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="keyword">protected</span> Object currentKey; <span class="comment">// key for current node</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1126</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1127</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="keyword">protected</span> Object currentValue; <span class="comment">// value for current node</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1128</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1129</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="keyword">protected</span> Entry lastReturned = <span class="keyword">null</span>; <span class="comment">// last node returned by next</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1130</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1131</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1131: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1131: method not entered.">        <span class="keyword">protected</span> HashIterator() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1132</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1132: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1132: statement not executed.">            tab = ConcurrentReaderHashMap.<span class="keyword">this</span>.getTableForReading();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1133</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1133: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1133: statement not executed.">            index = tab.length - 1;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1134</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1135</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1136</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1136: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1136: method not entered.">        <span class="keyword">public</span> <span class="keyword">boolean</span> hasMoreElements() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1137</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1137: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1137: statement not executed.">            <span class="keyword">return</span> hasNext();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1138</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1139</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1140</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1140: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1140: method not entered.">        <span class="keyword">public</span> Object nextElement() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1141</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1141: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1141: statement not executed.">            <span class="keyword">return</span> next();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1142</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1143</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1144</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1144: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1144: method not entered.">        <span class="keyword">public</span> <span class="keyword">boolean</span> hasNext() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1145</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1146</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">            <span class="comment">/*</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1147</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">             * currentkey and currentValue are set here to ensure that next()</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1148</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">             * returns normally if hasNext() returns true. This avoids surprises</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1149</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">             * especially when final element is removed during traversal --</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1150</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">             * instead, we just ignore the removal during current traversal.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1151</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">             */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1152</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1153</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1153: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1153: statement not executed.">            <span class="keyword">for</span> (;;) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1154</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1154: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1154: statement not executed.">                <span class="keyword">if</span> (entry != <span class="keyword">null</span>) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1155</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1155: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1155: statement not executed.">                    Object v = entry.value;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1156</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1156: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1156: statement not executed.">                    <span class="keyword">if</span> (v != <span class="keyword">null</span>) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1157</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1157: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1157: statement not executed.">                        currentKey = entry.key;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1158</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1158: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1158: statement not executed.">                        currentValue = v;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1159</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1159: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1159: statement not executed.">                        <span class="keyword">return</span> <span class="keyword">true</span>;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1160</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                    } <span class="keyword">else</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1161</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1161: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1161: statement not executed.">                        entry = entry.next;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1162</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1163</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1164</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1164: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1164: statement not executed.">                <span class="keyword">while</span> (entry == <span class="keyword">null</span> &amp;&amp; index &gt;= 0)</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1165</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1165: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1165: statement not executed.">                    entry = tab[index--];</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1166</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1167</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1167: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1167: statement not executed.">                <span class="keyword">if</span> (entry == <span class="keyword">null</span>) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1168</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1168: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1168: statement not executed.">                    currentKey = currentValue = <span class="keyword">null</span>;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1169</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1169: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1169: statement not executed.">                    <span class="keyword">return</span> <span class="keyword">false</span>;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1170</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">                }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1171</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">            }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1172</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1173</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1174</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1174: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1174: method not entered.">        <span class="keyword">protected</span> Object returnValueOfNext() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1175</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1175: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1175: statement not executed.">            <span class="keyword">return</span> entry;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1176</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1177</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1178</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1178: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1178: method not entered.">        <span class="keyword">public</span> Object next() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1179</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1179: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1179: statement not executed.">            <span class="keyword">if</span> (currentKey == <span class="keyword">null</span> &amp;&amp; !hasNext())</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1180</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1180: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1180: statement not executed.">                <span class="keyword">throw</span> <span class="keyword">new</span> NoSuchElementException();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1181</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1182</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1182: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1182: statement not executed.">            Object result = returnValueOfNext();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1183</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1183: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1183: statement not executed.">            lastReturned = entry;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1184</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1184: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1184: statement not executed.">            currentKey = currentValue = <span class="keyword">null</span>;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1185</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1185: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1185: statement not executed.">            entry = entry.next;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1186</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1186: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1186: statement not executed.">            <span class="keyword">return</span> result;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1187</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1188</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1189</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1189: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1189: method not entered.">        <span class="keyword">public</span> <span class="keyword">void</span> remove() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1190</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1190: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1190: statement not executed.">            <span class="keyword">if</span> (lastReturned == <span class="keyword">null</span>)</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1191</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1191: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1191: statement not executed.">                <span class="keyword">throw</span> <span class="keyword">new</span> IllegalStateException();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1192</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1192: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1192: statement not executed.">            ConcurrentReaderHashMap.<span class="keyword">this</span>.remove(lastReturned.key);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1193</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1193: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1193: statement not executed.">            lastReturned = <span class="keyword">null</span>;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1194</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1195</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1196</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1197</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
<A name="KeyIterator">&nbsp;1198</A></TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="keyword">protected</span> <span class="keyword">class</span> KeyIterator <span class="keyword">extends</span> HashIterator {</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1199</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1199: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1199: method not entered.">        <span class="keyword">protected</span> Object returnValueOfNext() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1200</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1200: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1200: statement not executed.">            <span class="keyword">return</span> currentKey;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1201</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1202</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1203</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
<A name="ValueIterator">&nbsp;1204</A></TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="keyword">protected</span> <span class="keyword">class</span> ValueIterator <span class="keyword">extends</span> HashIterator {</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1205</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1205: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1205: method not entered.">        <span class="keyword">protected</span> Object returnValueOfNext() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1206</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1206: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1206: statement not executed.">            <span class="keyword">return</span> currentValue;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1207</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1208</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1209</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1210</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1211</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Save the state of the &lt;tt&gt;ConcurrentReaderHashMap&lt;/tt&gt; instance to a</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1212</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * stream (i.e., serialize it).</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1213</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * </span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1214</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * @serialData The &lt;i&gt;capacity &lt;/i&gt; of the ConcurrentReaderHashMap (the</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1215</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *             length of the bucket array) is emitted (int), followed by the</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1216</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *             &lt;i&gt;size &lt;/i&gt; of the ConcurrentReaderHashMap (the number of</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1217</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *             key-value mappings), followed by the key (Object) and value</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1218</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *             (Object) for each key-value mapping represented by the</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1219</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *             ConcurrentReaderHashMap The key-value mappings are emitted in</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1220</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     *             no particular order.</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1221</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1222</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1223</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1223: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1223: method not entered.">    <span class="keyword">private</span> <span class="keyword">synchronized</span> <span class="keyword">void</span> writeObject(java.io.ObjectOutputStream s)</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1224</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">            <span class="keyword">throws</span> IOException {</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1225</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="comment">// Write out the threshold, loadfactor, and any hidden stuff</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1226</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1226: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1226: statement not executed.">        s.defaultWriteObject();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1227</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1228</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="comment">// Write out number of buckets</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1229</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1229: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1229: statement not executed.">        s.writeInt(table.length);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1230</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1231</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="comment">// Write out size (number of Mappings)</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1232</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1232: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1232: statement not executed.">        s.writeInt(count);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1233</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1234</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="comment">// Write out keys and values (alternating)</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1235</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1235: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1235: statement not executed.">        <span class="keyword">for</span> (<span class="keyword">int</span> index = table.length - 1; index &gt;= 0; index--) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1236</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1236: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1236: statement not executed.">            Entry entry = table[index];</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1237</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1238</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1238: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1238: statement not executed.">            <span class="keyword">while</span> (entry != <span class="keyword">null</span>) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1239</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1239: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1239: statement not executed.">                s.writeObject(entry.key);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1240</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1240: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1240: statement not executed.">                s.writeObject(entry.value);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1241</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1241: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1241: statement not executed.">                entry = entry.next;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1242</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">            }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1243</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1244</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1245</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1246</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1247</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Reconstitute the &lt;tt&gt;ConcurrentReaderHashMap&lt;/tt&gt; instance from a</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1248</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * stream (i.e., deserialize it).</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1249</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1250</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1250: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1250: method not entered.">    <span class="keyword">private</span> <span class="keyword">synchronized</span> <span class="keyword">void</span> readObject(java.io.ObjectInputStream s)</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1251</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">            <span class="keyword">throws</span> IOException, ClassNotFoundException {</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1252</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="comment">// Read in the threshold, loadfactor, and any hidden stuff</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1253</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1253: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1253: statement not executed.">        s.defaultReadObject();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1254</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1255</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="comment">// Read in number of buckets and allocate the bucket array;</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1256</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1256: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1256: statement not executed.">        <span class="keyword">int</span> numBuckets = s.readInt();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1257</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1257: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1257: statement not executed.">        table = <span class="keyword">new</span> Entry[numBuckets];</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1258</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1259</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="comment">// Read in size (number of Mappings)</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1260</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1260: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1260: statement not executed.">        <span class="keyword">int</span> size = s.readInt();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1261</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1262</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        <span class="comment">// Read the keys and values, and put the mappings in the table</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1263</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1263: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1263: statement not executed.">        <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i &lt; size; i++) {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1264</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1264: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1264: statement not executed.">            Object key = s.readObject();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1265</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1265: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1265: statement not executed.">            Object value = s.readObject();</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1266</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1266: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1266: statement not executed.">            put(key, value);</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1267</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">        }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1268</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1269</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1270</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1271</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Return the number of slots in this table</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1272</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1273</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1274</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1274: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1274: method not entered.">    <span class="keyword">public</span> <span class="keyword">synchronized</span> <span class="keyword">int</span> capacity() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1275</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1275: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1275: statement not executed.">        <span class="keyword">return</span> table.length;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1276</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1277</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1278</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    <span class="comment">/**</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1279</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     * Return the load factor</span></SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1280</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine"><span class="comment">     */</span></SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1281</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1281: method not entered.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1281: method not entered.">    <span class="keyword">public</span> <span class="keyword">float</span> loadFactor() {</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCountHilight">
&nbsp;1282</TD>
<TD align="right" class="coverageCountHilight">
<A title="Line 1282: statement not executed.">&nbsp;0</A>
</TD><TD class="srcCell"><SPAN class="srcLineHilight"><A title="Line 1282: statement not executed.">        <span class="keyword">return</span> loadFactor;</A>
</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1283</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">    }</SPAN></TD></TR><TR><TD align="right" class="lineCount">
&nbsp;1284</TD>
<TD align="right" class="coverageCount">
&nbsp;&nbsp;
</TD><TD class="srcCell"><SPAN class="srcLine">}</SPAN></TD></TR></TBODY></TABLE>
<TABLE width="100%"><TR><TD class="hbreak" colspan="6">&nbsp;</TD></TR>
<TR><TD class="footer" colspan="6">
<table>
<tr>
 <td><a target="_new" href="http://www.cenqua.com/clover"><img alt="Clover" src="../../../img/logo.gif" border="0"></a></td><td nowrap><i>Report generated by </i><a target="_new" href="http://www.cenqua.com/clover">Clover Code Coverage v1.3.5</a><i><BR>ma mei 16 2005 14:23:02 GMT+01:00</i>.</td>
<td>&nbsp;</td><td style="BORDER-LEFT: #9c9c9c 1px solid;">&nbsp;</td><td>Open Source License registered to the dom4j Project. This license of Clover is provided to support the development of dom4j only. </td>
</tr>
</table>
</td>
</tr></TABLE>
